Toon code
source("R/scripts/load-dfpersona.R")ITD | B Communication and Multimedia Design (CMD) - voltijd - versie 1.0
In deze verdiepende analyse gaan we in op de factoren om beter te begrijpen hoe deze retentie verklaren.
Deze verdiepende factoranalyse heeft de volgende stappen:
Deze verdiepende factoranalyse heeft 6 stappen:
We laden de bewerkte data en prognosemodellen in voor:
Opleiding: ITD | B Communication and Multimedia Design (Synth) (CMD), voltijd, eerstejaars - Retentie na 1 jaar
We weten van de factoren nog niet hoe en in welke richting ze retentie verklaren: dragen ze sterk bij of juist niet, verhogen of verlagen ze retentie?
We gaan nu een stap verder met behulp van het DALEX package. Op basis van het tidymodels model (zie hoofdstuk 3) extraheren we de informatie voor de explainer van Dalex.
Preparation of a new explainer is initiated
-> model label : Random Forest
-> data : 1613 rows 26 cols
-> target variable : 1613 values
-> predict function : yhat.workflow will be used ( [33m default [39m )
-> predicted values : No value for predict function target column. ( [33m default [39m )
-> model_info : package tidymodels , ver. 1.2.0 , task classification ( [33m default [39m )
-> predicted values : numerical, min = 0.1759112 , mean = 0.6193215 , max = 0.9273344
-> residual function : difference between y and yhat ( [33m default [39m )
-> residuals : numerical, min = -0.841733 , mean = 0.001881272 , max = 0.7484622
[32m A new explainer has been created! [39m
De eerste analyse is de Root Mean Square Error (RMSE) na permutaties.
Waarom is RMSE na permutaties nodig?
De meeste voorspellende factoren en hun RMSE zijn:
sPlotPath <- file.path(Get_Plot_Outputpath(plotname = "lf_model_parts_rmse",
bestmodel = sBest_model))
# If the plot does not exist or if recreateplots - T, create a new plot
if(!file.exists(sPlotPath) | params$recreateplots == TRUE) {
# Calculate the model parts based on the RMSE; remove ID
mp_rmse <- model_parts(explain_lf, loss_function = loss_root_mean_square) |>
filter(variable != "ID")
# Create a plot of the RMSE
mp_rmse_plot <- Get_RMSE_Plot(mp_rmse)
# Save the plot
suppressWarnings(
Finalize_Plot(
plot_name = mp_rmse_plot,
save_filepath = sPlotPath,
height_pixels = 50 + (15 * length(unique(mp_rmse$variable)))
))
# Show the existing plot
knitr::include_graphics(sPlotPath)
} else {
# Show the existing plot
knitr::include_graphics(sPlotPath)
}Het valt op dat de meest voorspellende variabelen ook een hoge RMSE hebben. Dit betekent dat deze variabelen een grote invloed hebben op de voorspelling van het model, maar per toepassing op een individuele student uit het verleden ook sterk kunnen variëren.
Een volgende analyse gaat in op de variabelen met de meeste invloed. Doordat deze analyse rekening houdt met interactie effecten, niet lineaire effecten en collineariteit, kan de volgorde van variabelen wat verschillen van die van een op RMSE gebaseerde analyse.
Deze analyse passen we toe op de meest voorkomende student. We onderzoeken eerst de meest voorkomende student in de gehele populatie van deze opleiding. Vervolgens analyseren we de meest voorkomende student in meerdere groepen: naar geslacht, aansluiting, vooropleiding, etc. We gebruiken hiervoor bij numerieke variabelen de mediaan en van categorische variabelen de meest frequente categorie.
Stel dat we een onderscheid maken tussen mannen en vrouwen, dan zullen zij verschillen in bijvoorbeeld de meest voorkomende leeftijd, het meest voorkomende studiekeuzeprofiel, etc. Zo ontstaat er per groep een unieke selectie van variabelen en waarden. De volgorde in belangrijkheid kan ook per groep verschillen.
We onderzoeken zo de voorspelling van het model per groep en de bijdrage van de verklarende variabelen aan die specifieke voorspelling. Dit geeft een verder inzicht in de werking van het model. Een categorie met 20 studenten of minder laten we buiten beschouwing.
De opbouw van het model bestaat uit een intercept, gevolgd door verklarende variabelen die een verschil maken ten opzichte van die intercept. De intercept is de basiskans op retentie voor alle studenten. Deze kans is voor de B Communication and Multimedia Design (CMD) voltijd 61,9%. De cumulatieve bijdrage van de variabelen aan de voorspelling kan positief of negatief zijn. Een positieve bijdrage betekent dat de variabele de kans op retentie verhoogt, een negatieve bijdrage betekent dat het de kans op retentie verlaagt.
Het kan zijn dat nieuwe variabelen geen invloed meer hebben op de kans. Dit betekent niet per se dat ze niet belangrijk zijn. Het kan zijn dat de invloed die ze hebben op de kans al is ‘afgevangen’ door variabelen die eerder in het model zijn opgenomen.
De variabele Cijfer_CE_VO_missing = Ja betekent dat een student geen VO cijfers heeft voor het centraal schriftelijk examen. Dit geldt voor vrijwel alle MBO studenten. Doordat de variabele Cijfer_CE_VO_missing de kans op retentie net wat sterker beïnvloedt, komt Vooropleiding = MBO niet meer voor als invloedrijke variabele, maar is dit wel de achterliggende reden dat het cijfer ontbreekt.
Uiteindelijk tellen alle verklarende variabelen op tot een definitieve voorspelling die per persoon verschilt, afhankelijk van hun persoonlijke verschillen per variabele.
We onderzoeken eerst de meest voorkomende student in de opleiding. We analyseren de kans op retentie voor deze fictieve student en de bijdrage van de variabelen aan die kans. Daarbij tonen we de verdeling van de voorspellingen voor deze student voor alle variabelen en per variabele. Dit laat zien welke variabelen belangrijk zijn, naar welke kant de verdeling neigt en welke spreiding de kansverdeling heeft.
Toelichting
all data is eigenlijk geen variabele, maar geeft aan wat alle data samen aan kans op retentie voorspellen. Variabelen die daarna bovenaan staan, wegen het zwaarst in de voorspelling van de kans.Nu de algemene opbouw van de kans op retentie bekend is voor de meest voorkomende student, gaan we verder met een analyse van de meest voorkomende studenten per groep.
De volgorde van de variabelen is zo gesorteerd dat per groep de meest voorspellende variabelen bovenaan staat. De volgorde verschilt per groep en geeft inzicht in wat er per groep speelt. De variabelen zijn vaak proxies voor onderliggende verschillen.
De subtotalen voor de categorieën 2e Studie en Na CD zijn te laag voor een betrouwbare analyse.
Na deze factorentanalyse kijken we naar de stabiliteit van de invloed van de verklarende variabelen. We gebruiken hiervoor Shapley waarden.
Een Shapley analyse houdt rekening met een andere volgorde van de variabelen. De volgorde van de variabelen is cumulatief (additief) en maakt dus uit voor de bijdrage aan het model: als er een andere variabele al in het model is toegevoegd, heeft dat invloed op de daaropvolgende variabele. Een Shapley analyse permuteert de volgorde van de variabelen om daarmee de verschillen te berekenen in de bijdrage aan de voorspelling. Zo krijgen we nog beter zicht op het belang en de invloed van de individuele variabelen in het prognosemodel. Variabelen zonder bijdrage hebben we verwijderd.
De volgorde van de variabelen in deze Shapley analyse is gelijk aan die van Figuur 3.2.
# Save the plot
sPlotPath <- file.path(Get_Plot_Outputpath(plotname = "lf_shapley",
bestmodel = sBest_model))
# If the plot does not exist or if recreateplots - T, create a new plot
if(!file.exists(sPlotPath) | params$recreateplots == TRUE) {
# Determine the Shapley values
lf_shapley <-
predict_parts(
explainer = explain_lf,
new_observation = dfPersona_all[1, ],
type = "shap",
B = 20
)
# Convert these to a data frame
dfShapley <- Get_dfShapley(lf_shapley)
# Build the plot
shapley_plot <- Get_Shapley_Plot(dfShapley)
# Save the plot
suppressWarnings(
Finalize_Plot(
plot_name = shapley_plot,
save_filepath = sPlotPath,
height_pixels = 50 + (25 * length(unique(dfShapley$variable_name)))
))
# Print the existing plot
knitr::include_graphics(sPlotPath)
} else {
# Print the existing plot
knitr::include_graphics(sPlotPath)
}Toelichting:
Vervolgens analyseren we een aantal scenario’s (wat als…). We nemen opnieuw de meest voorkomende studenten, maar beelden nu af hoe de kans op retentie eruit zou zien als telkens een van de variabelen net wat anders was geweest.
Dit is de invloed van de variabelen bij de unieke combinatie van deze meest voorkomende student per categorie. Zie voor de invloed van een variabelen ongeacht deze unieke combinatie de analyse van Partial Dependence Profielen in de volgende paragraaf.
Hiervoor houden we steeds alle variabelen gelijk, op één na (ceteris paribus is Latijn voor ‘al het overige gelijk’). Van die ene variabelen passen we de waarden aan en zien dan het effect op de voorspelde kans op retentie. Dit geeft beter inzicht in het effect van de individuele variabelen in het model. We voeren deze analyse uit voor numerieke variabelen.
Stel dat de student in dit model net een wat hoger eindexamencijfer zou hebben gehad op de middelbare school, wat zou dan de kans op retentie zijn geweest? Het is waarschijnlijk dat de kans op retentie dan hoger zou zijn geweest. Bij hbo-opleidingen die goed aansluiten hebben met een opleiding aan een universiteit, zou de kans op retentie juist lager zijn geweest omdat studenten dan na een hbo-diploma vaak doorstromen naar een universiteit.
Opnieuw kijken we naar geslacht, aansluiting en vooropleiding. N.B. Het kan zijn dat een van de categorieën niet zichtbaar is, dit komt doordat deze dan over elkaar heen vallen.
Tot slot analyseren we Partial Dependence. Hierbij onderzoeken we de invloed van individuele variabelen op de kans op retentie, ongeacht de combinatie van de meest voorkomende studenten. Per (numerieke) variabele analyseren we de variantie binnen de kansen op retentie. We gebruiken hiervoor het gemiddelde van alle Ceteris Paribus profielen. Vandaar dat we ook wel spreken over Partial Dependence profielen (PDP’s).
We analyseren eerst de variabelen voor alle studenten. We tonen niet alleen de gemiddelde lijn, maar ook de lijnen van individuele CP-profielen. Vervolgens analyseren op dezelfde manier de variabelen per groep: geslacht, aansluiting en vooropleiding.
Toelichting
Verantwoording
Deze analyse maakt deel uit van het onderzoek naar kansengelijkheid van het lectoraat Learning Technology & Analytics van De Haagse Hogeschool: No Fairness without Awareness | Het rapport is door het lectoraat ontwikkeld in Quarto 1.6.39. | Template versie:
Copyright
Dr. Theo Bakker, Lectoraat Learning Technology & Analytics, De Haagse Hogeschool © 2023-2025. Alle rechten voorbehouden.